package com.gzc.just.play.last.war.centralserver.achievement;

/**
 * 成就配置 - 定义单个成就的配置信息
 * 
 * @author AI编程助手
 * @version 1.0
 */
public class AchievementConfig {
    
    private final int achievementId;
    private final String name;
    private final String description;
    private final AchievementType type;
    private final int targetValue;
    private final int rewardPoints;
    private final int rewardGold;
    private final boolean hidden;
    private final int priority;
    private final String icon;
    private final String category;
    
    /**
     * 构造函数
     * 
     * @param achievementId 成就ID
     * @param name 成就名称
     * @param description 成就描述
     * @param type 成就类型
     * @param targetValue 目标值
     * @param rewardPoints 奖励积分
     * @param rewardGold 奖励金币
     * @param hidden 是否隐藏
     * @param priority 优先级
     * @param icon 图标
     * @param category 分类
     */
    public AchievementConfig(int achievementId, String name, String description, 
                            AchievementType type, int targetValue, int rewardPoints,
                            int rewardGold, boolean hidden, int priority, 
                            String icon, String category) {
        this.achievementId = achievementId;
        this.name = name;
        this.description = description;
        this.type = type;
        this.targetValue = targetValue;
        this.rewardPoints = rewardPoints;
        this.rewardGold = rewardGold;
        this.hidden = hidden;
        this.priority = priority;
        this.icon = icon;
        this.category = category;
    }
    
    // Getters
    
    public int getAchievementId() {
        return achievementId;
    }
    
    public String getName() {
        return name;
    }
    
    public String getDescription() {
        return description;
    }
    
    public AchievementType getType() {
        return type;
    }
    
    public int getTargetValue() {
        return targetValue;
    }
    
    public int getRewardPoints() {
        return rewardPoints;
    }
    
    public int getRewardGold() {
        return rewardGold;
    }
    
    public boolean isHidden() {
        return hidden;
    }
    
    public int getPriority() {
        return priority;
    }
    
    public String getIcon() {
        return icon;
    }
    
    public String getCategory() {
        return category;
    }
    
    @Override
    public String toString() {
        return String.format("AchievementConfig{id=%d, name='%s', type=%s, target=%d, reward=%d}",
                           achievementId, name, type.getDisplayName(), targetValue, rewardPoints);
    }
}
